In the classic seven layer Open Systems Interconnection (OSI) protocol stack for networking, communication and data sharing is restricted to adjacent layers in the protocol stack. The OSI protocol stack assumes a somewhat static performance of the low level protocol layers, such as the Media Access Control (MAC) layer and the physical layer (PHY). However, in wireless networks where the performance of the low level protocol layers and specifically the physical layer (PHY) is dynamic, the classic OSI protocol stack is not optimal. Changes in performance at the physical layer (PHY) result in rippling effects in the higher layers of the protocol stack. For example, as packets are dropped over an error prone wireless link, the Transmission Control Protocol (TCP) layer assumes network congestion at the Internet Protocol (IP) layer or high traffic loads within the network router. In response, the TCP layer overcompensates by slowing transmission rates.
Due to the non-optimal performance of the classic OSI model in wireless networks, cross-layering has emerged as a viable approach to gaining network performance. In general, cross-layering is when communication or data sharing is enabled between non-adjacent layers in the protocol stack in violation of the classic OSI model. One issue with known cross-layer architectures is that they do not support a network device having multiple applications interacting with multiple network interface cards. As such, there is a need for a cross-layer architecture for a network device having multiple applications interacting with multiple network interface cards.